function [predict_label,accuracy,decision values] = svmpredict(training_label_vector,...
    training_instance_matrix , libsvm_options)
%        -testing_label_vector:
%             An m by 1 vector of prediction labels. If labels of test
%             data are unknown, simply use any random values. (type must be double)
%         -testing_instance_matrix:
%             An m by n matrix of m testing instances with n features.
%             It can be dense or sparse. (type must be double)
%         -model:
%             The output of svmtrain.
%         -libsvm_options:
%             A string of testing options in the same format as that of LIBSVM.
%
% The function 'svmpredict' has three outputs. The first one,
% predictd_label, is a vector of predicted labels. The second output,
% accuracy, is a vector including accuracy (for classification), mean
% squared error, and squared correlation coefficient (for regression).
% The third is a matrix containing decision values or probability
% estimates (if '-b 1' is specified). If k is the number of classes
% in training data, for decision values, each row includes results of 
% predicting k(k-1)/2 binary-class SVMs. For classification, k = 1 is a
% special case. Decision value +1 is returned for each testing instance,
% instead of an empty vector. For probabilities, each row contains k values
% indicating the probability that the testing instance is in each class.
% Note that the order of classes here is the same as 'Label' field
% in the model structure.
% matlab> [predicted_label, accuracy, decision_values/prob_estimates] = svmpredict(testing_label_vector, testing_instance_matrix, model [, 'libsvm_options']);
% matlab> [predicted_label] = svmpredict(testing_label_vector, testing_instance_matrix, model [, 'libsvm_options']);

end

